//header js
var _account_service = require('service/account-service.js');
var _catalog_service = require('service/catalog-service.js');
$('#SearchResult').hide();
var _util = require('util/util.js');
var listTemplate = require('./index.string');

var header = (function () {
    var initialized = false; // 闭包隔离初始化标记

    return {
        init: function () {
            if (initialized) return this;
            initialized = true;

            this.bindEvents();
            this.loadAccountInfo();
            return this;
        },


    init: function () {

        this.bindEvents();
        this.loadAccountInfo();
        return this;
    },
    //点击事件
    bindEvents: function () {
        var _this = this;
        
        // 点击其他区域隐藏搜索结果
        $(document).on('click', function(e) {
            
            var $target = $(e.target);
            // 如果点击的既不是搜索框也不是搜索结果区域
            if (!$target.closest('#keyword').length && !$target.closest('#SearchResult').length) {
                $('#SearchResult').empty().hide();
            }
        });

        // 搜索框输入事件
        $('#keyword').on('input', function() {
            var keyword = $.trim($(this).val());
            if(keyword) {
                _this.searchProduct(keyword);
            } else {
                $('#SearchResult').empty().hide();
            }
        });

        // 搜索框获得焦点时，如果有内容则显示结果
        $('#keyword').on('focus', function() {
            var keyword = $.trim($(this).val());
            if(keyword) {
                _this.searchProduct(keyword);
            }
        });

       
        $('#logOut').off('click') // 解绑所有 click 事件（无论是否有命名空间）
            .off('click.logoutNamespace') // 解绑指定命名空间的事件
            .on('click.logoutNamespace', function (e) {// 先解绑再绑定，确保不会多次弹出弹窗
            console.log('退出按钮点击事件触发'); 
            e.preventDefault();
            e.stopPropagation();

            if (window.confirm("确定要退出吗？")) {
                _account_service.logOut(
                    function (resp) {
                        window.location.href = './account-login.html';
                    
                    },
                    function (errorMsg) {
                        alert("退出失败，请重试！");
                        window.location.href = './account-login.html';
                    }
                );
            }
        });

        $('#signOn').on('click', function (e) {
            e.preventDefault();
            // console.log('[DEBUG] Sign In 点击事件触发'); // 添加调试输出
            window.location.href = './account-login.html'; // 确保路径正确
        });

        //购物车
        $('#cart').on('click', function () {
            window.location.href = './cart.html';
        });
        $('#toMain').on('click', function () {
            window.location.href = './catalog-main.html';
        });
        $('#myAccount').on('click', function () {
            window.location.href = './account-myAccount.html';
        });
        $('#myOrder').on('click', function () {
            window.location.href = './order-myOrder.html';
        });

        // 搜索框事件（实时搜索）
        $('#keyword').on('keyup', function () {
            var keyword = $.trim($('#keyword').val()); // 确保 keyword 是字符串
            _catalog_service.searchProduct(
                keyword, // 传递字符串
                function(res) {
                    console.log("搜索结果数据结构：", res); // 检查控制台输出
                    $('#SearchResult').show();
                    // 如果 res 是 { data: [...] }，需改为 res.data
                    var result = _util.renderHtml(listTemplate, { listData: { productList: res.data } });
                    $('#SearchResult').html(result);
                },
                function (errMsg) {
                    $('#SearchResult').hide();
                    console.error("搜索失败：", errMsg);
                }
            );
        });

        //搜索按钮事件
        $('#searchProducts').on('click', function () {
            var keyword = $.trim($('#keyword').val());
            if (keyword === "") {
                alert("请输入搜索关键字！");
                return;
            }
        
            _catalog_service.searchProduct(
                keyword,
                function (res) {
                    console.log("搜索结果：", res);
                    $('#SearchResult').show();
                    var result = _util.renderHtml(listTemplate, { listData: { productList: res } });
                    $('#SearchResult').html(result);
                },
                function (errMsg) {
                    $('#SearchResult').hide();
                    console.error("搜索失败：", errMsg);
                }
            );
        });
    },
    loadAccountInfo: function () {
        _account_service.checkLogin(
            //成功调用
            function (res) {

                $('#signOnSpan').hide();
                $('#signOutSpan').show();

            },
            //失败调用
            function (errMsg) {
                console.log('未连接服务器');
                $('#signOnSpan').show();
                $('#signOutSpan').hide();
            }

        );

    },
    searchProduct: function(keyword) {
        _catalog_service.searchProduct(
            keyword,
            function(res) {
                console.log("搜索结果数据结构：", res);
                $('#SearchResult').show();
                var result = _util.renderHtml(listTemplate, { listData: { productList: res.data } });
                $('#SearchResult').html(result);
            },
            function(errMsg) {
                $('#SearchResult').empty().hide();
                console.error("搜索失败：", errMsg);
            }
        );
    }
    };
})();
module.exports = header.init();